package base

import (
	"emma/errors"
	"proto/base"
)

type Error struct {
	Code proto_base.ErrorCode
	Args []string
}

func ParseError(err error) (result *Error) {
	if err == nil {
		return
	}

	result = new(Error)
	if e, ok := err.(*errors.Error); ok {
		results := e.Parse()
		result.Code = proto_base.ErrorCode(results[0].(int))
		result.Args = results[1].([]string)
	} else {
		result.Code = proto_base.ErrorCode_ServerInternalError
	}

	return
}
